package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 会员设置操作记录对象 member_setting_operation_log
 *
 * @author ruoyi
 * @date 2025-05-20
 */
@ApiModel("会员设置操作记录")
@Data
public class MemberSettingOperationLog extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键，唯一标识每条操作记录 */
    @ApiModelProperty("自增主键，唯一标识每条操作记录")
    private Long id;

    /** 操作类型（SET_WECHAT_BINDING_LIMIT: 设置会员可绑定微信数，SET_MEMBER_DISPLAY_SCOPE: 设置会员显示范围，OTHER_SETTING: 其他设置） */
    @Excel(name = "操作类型", readConverterExp = "S=ET_WECHAT_BINDING_LIMIT:,设=置会员可绑定微信数，SET_MEMBER_DISPLAY_SCOPE:,设=置会员显示范围，OTHER_SETTING:,其=他设置")
    @ApiModelProperty("操作类型（SET_WECHAT_BINDING_LIMIT: 设置会员可绑定微信数，SET_MEMBER_DISPLAY_SCOPE: 设置会员显示范围，OTHER_SETTING: 其他设置）")
    private String operationType;

    /** 操作详情 */
    @Excel(name = "操作详情")
    @ApiModelProperty("操作详情")
    private String operationDetail;

    /** 操作员工ID（关联员工表主键） */
    @Excel(name = "操作员工ID", readConverterExp = "关=联员工表主键")
    @ApiModelProperty("操作员工ID（关联员工表主键）")
    private Long operatorId;

    /** 操作员工姓名 */
    @Excel(name = "操作员工姓名")
    @ApiModelProperty("操作员工姓名")
    private String operatorName;

    /** 操作开始时间（YYYY-MM-DD HH:MM:SS） */
    @Excel(name = "操作开始时间", readConverterExp = "Y=YYY-MM-DD,H=H:MM:SS")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作开始时间（YYYY-MM-DD HH:MM:SS）")
    private Date operationStartTime;

    /** 操作结束时间（YYYY-MM-DD HH:MM:SS，可选，用于耗时统计） */
    @Excel(name = "操作结束时间", readConverterExp = "Y=YYY-MM-DD,H=H:MM:SS，可选，用于耗时统计")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作结束时间（YYYY-MM-DD HH:MM:SS，可选，用于耗时统计）")
    private Date operationEndTime;

    /** 操作状态（SUCCESS: 成功，FAILED: 失败，IN_PROGRESS: 进行中） */
    @Excel(name = "操作状态", readConverterExp = "S=UCCESS:,成=功，FAILED:,失=败，IN_PROGRESS:,进=行中")
    @ApiModelProperty("操作状态（SUCCESS: 成功，FAILED: 失败，IN_PROGRESS: 进行中）")
    private String operationStatus;

    /** 错误信息（操作失败时记录具体错误原因） */
    @Excel(name = "错误信息", readConverterExp = "操=作失败时记录具体错误原因")
    @ApiModelProperty("错误信息（操作失败时记录具体错误原因）")
    private String errorMessage;

    /** 关联的会员设置ID（如配置表的主键ID，可选） */
    @Excel(name = "关联的会员设置ID", readConverterExp = "如=配置表的主键ID，可选")
    @ApiModelProperty("关联的会员设置ID（如配置表的主键ID，可选）")
    private Long relatedSettingId;

    /** 操作员工的IP地址 */
    @Excel(name = "操作员工的IP地址")
    @ApiModelProperty("操作员工的IP地址")
    private String ipAddress;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}